//package demo1109.demo03;
//
//
//import net.sf.cglib.proxy.Enhancer;
//import net.sf.cglib.proxy.MethodInterceptor;
//import net.sf.cglib.proxy.MethodProxy;
//
//import java.lang.reflect.Method;
//
///**
// * @author JYH
// * @version 1.0
// * @date 2022/11/9 16:24
// */
//public class ProxyFactory implements MethodInterceptor {
//    //被代理的对象
//    private Object target;
//    public ProxyFactory(Object target) {
//        this.target = target;
//    }
//
//    //获取代理对象
//    public Object getInstance(){
//        //创建一个工具---生成代理对象
//        Enhancer enhancer=new Enhancer();
//        //指定被代理的的父类
//        enhancer.setSuperclass(target.getClass());
//        //代理的回调方法
//        enhancer.setCallback(this);
//        return enhancer.create();
//
//    }
//
//    //执行被代理的方法时，会执行该方法。
//    public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
//        intro();
//        //调用被代理对象的方法
//        Object result = method.invoke(target, objects);
//        watch();
//        return result;
//    }
//    public void watch(){
//        System.out.println("看房");
//    }
//    public void intro(){
//        System.out.println("房源介绍");
//    }
//}
